const state = {
  // 设置侧边栏（导航栏）是打开还是关闭的状态，以及是否需要动画
  /**
   *!!+Cookies.get('sidebarStatus')是将数字1，0转成true，false的一种js技巧
   * Cookies.get('sidebarStatus') = 1
   * +Cookies.get('sidebarStatus') = 1
   * !+Cookies.get('sidebarStatus') = false
   * !!+Cookies.get('sidebarStatus') = true
   * 所以，下面这句三元运算符的判断原理是
   * 如果cookie里有值，就返回true，没有也返回true，这里是用来初始化opened始终是打开的
   */
  // barSide: {
  //   isOpened: cookies.get('barSideStatus') ? !!+cookies.get('barSideStatus') : true,
  //   withoutAnimation: false,
  // },
  // device: 'desktop',
  // 设置element-ui的默认尺寸
  // size: cookies.get('size') || 'medium',
  // 设置网络状态标识
  flagNetConnected: true,
  // 设置是否在console打印
  flagConsoleLog: true,
}

const mutations = {
  // TOGGLE_DEVICE: (state, device) => {
  //   state.device = device
  // },
  TOGGLE_NET_CONNECTED_STATUS: (state, val) => {
    state.flagNetConnected = val
  },
  TOGGLE_CONSOLE_LOG: (state, val) => {
    state.flagConsoleLog = val
  },
}

const actions = {
  toggleDevice({ commit }, device) {
    commit('TOGGLE_DEVICE', device)
  },
  toggleNetConnectedStatus({ commit }, val) {
    commit('TOGGLE_NET_CONNECTED_STATUS', val)
  },
  toggleConsoleLog({ commit }, val) {
    commit('TOGGLE_CONSOLE_LOG', val)
  },
}

export default {
  // 此属性是为了让vuex模块化管理时，调用各个模块的变量都要用namespaced
  // 比如外界调用这里的变量就要用$store.app.device
  namespaced: true,
  state,
  mutations,
  actions,
}
